drop view all_tickets
go
create view all_tickets(id_ticket, id_estado, id_ventanilla,id_tipo_ticket,id_usuario, 
id_oficina,orden, fecha, hora_emision, hora_asignacion, hora_inicio_atencion,hora_fin_atencion, origen)
as  
select 
	t1.id_ticket, t1.id_estado, t1.id_ventanilla, t1.id_tipo_ticket, t1.id_usuario, 
	t1.id_oficina, t1.orden, t1.fecha, t1.hora_emision, t1.hora_asignacion, t1.hora_inicio_atencion,
	t1.hora_fin_atencion, 0 as origen
from ticket t1
union all 
select 
	t2.id_ticket, t2.id_estado, t2.id_ventanilla, t2.id_tipo_ticket, t2.id_usuario, 
	t2.id_oficina, t2.orden, t2.fecha, t2.hora_emision, t2.hora_asignacion, t2.hora_inicio_atencion,
	t2.hora_fin_atencion,(case when t2.derivado=1 then 1 when t2.reactivado=1 then 2 end) as origen
from ticket2 t2;
go

drop view vw_SeguimientoTicket
go

create view vw_SeguimientoTicket as 
SELECT     TOP (100) PERCENT t.id_tipo_ticket, t.id_oficina, t.orden, tt.codigo_impresion + CAST(t.orden AS VARCHAR) AS ticket, ta.nombre AS tipoatencion, 
 CASE 
 	when ((t.hora_asignacion - t.hora_emision=0) and datediff(second,t.hora_asignacion,t.hora_inicio_atencion)<=7) then 'Interno' 
 	when t.origen=0 then 'Emitido' 
 	when t.origen=1 then 'Derivado' 
 	when t.origen=2 then 'Reactivado' else '-' end as origen,
 
 
			o.nombre AS oficina, 
                      t.fecha, t.hora_emision AS horaemision, t.hora_asignacion AS horallamado, CASE WHEN (([hora_inicio_atencion] IS NULL) AND (e.id_estado = 3)) 
                      THEN [hora_asignacion] ELSE [hora_inicio_atencion] END AS horainicioatencion, t.hora_fin_atencion AS horafinatencion, CASE WHEN (([hora_inicio_atencion] IS NULL)
                       AND (e.id_estado = 3)) THEN CONVERT(CHAR(38), [hora_asignacion] - hora_emision, 8) ELSE CONVERT(CHAR(38), hora_inicio_atencion - hora_emision, 8) 
                      END AS tiempoespera, CASE WHEN (([hora_inicio_atencion] IS NULL) AND (e.id_estado = 3)) THEN CONVERT(CHAR(38), hora_fin_atencion - [hora_asignacion], 8) 
                      ELSE CONVERT(CHAR(38), hora_fin_atencion - hora_inicio_atencion, 8) END AS tiempoatencion, CONVERT(CHAR(38), t.hora_fin_atencion - t.hora_emision, 8) 
                      AS tiempopermanencia, e.nombre AS estado, v.nombre_tv AS ventanilla, u.nombre + ' ' + u.ape_paterno AS cajero
                     
                      
FROM         dbo.all_tickets AS t WITH (INDEX = I_Fecha) INNER JOIN
                      dbo.USUARIO AS u ON t.id_usuario = u.id_usuario INNER JOIN
                      dbo.TIPO_TICKET AS tt ON t.id_tipo_ticket = tt.id_tipo_ticket INNER JOIN
                      dbo.ESTADO_TICKET AS e ON t.id_estado = e.id_estado INNER JOIN
                      dbo.VENTANILLA AS v ON t.id_ventanilla = v.id_ventanilla INNER JOIN
                      dbo.OFICINA AS o ON o.id_oficina = t.id_oficina INNER JOIN
                      dbo.TIPO_ATENCION AS ta ON ta.id_tipo_atencion = tt.id_tipo_atencion
go